load_performance:
  stage: performance
  image: docker:20.10.12
  allow_failure: true
  variables:
    DOCKER_TLS_CERTDIR: ""
    K6_IMAGE: grafana/k6
    K6_VERSION: 0.41.0
    K6_TEST_FILE: raw.githubusercontent.com/grafana/k6/master/examples/http_get.js
    K6_OPTIONS: ''
    K6_DOCKER_OPTIONS: ''
  services:
    - name: 'docker:20.10.12-dind'
      command: ['--tls=false', '--host=tcp://0.0.0.0:2375']
  script:
    - |
      if ! docker info &>/dev/null; then
        if [ -z "$DOCKER_HOST" ] && [ -n "$KUBERNETES_PORT" ]; then
          export DOCKER_HOST='tcp://localhost:2375'
        fi
      fi
    - docker run --rm -v "$(pwd)":/k6 -w /k6 $K6_DOCKER_OPTIONS $K6_IMAGE:$K6_VERSION run $K6_TEST_FILE --summary-export=load-performance.json $K6_OPTIONS
  artifacts:
    reports:
      load_performance: load-performance.json
  rules:
    - if: '($CI_KUBERNETES_ACTIVE == null || $CI_KUBERNETES_ACTIVE == "") && ($KUBECONFIG == null || $KUBECONFIG == "")'
      when: never
    - if: '$LOAD_PERFORMANCE_DISABLED'
      when: never
    - if: '$CI_COMMIT_TAG || $CI_COMMIT_BRANCH'
